package structure.composite;

import java.util.List;

/**
 *  组合模式
 *  	组合模式，又叫部分整体模式，是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象，
 *  用来表示部分以及整体层次。这种类型的设计模式属于结构型模式，它创建了对象组的树形结构。
 *	这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。
 *	使用场景：部分、整体场景，如树形菜单，文件、文件夹的管理。
 */
public class CompositePatternDemo {
	public static void main(String[] args) {
		A a = new A("boss");
		
		A b = new A("employee1");
		A c = new A("employee2");
		A d = new A("employee2");
		
		a.putA(b);
		a.putA(c);
		a.putA(d);
		
		System.out.println(a.toString());
		
		List<A> aList = a.getA();
		
		for (A a2 : aList) {
			System.out.println("  "+ a2.toString());
		}
		
	}
}
